//
//  EmotionPakeage.swift
//  1120自定义键盘
//
//  Created by 江先铨 on 15/11/22.
//  Copyright © 2015年 jxqstatic. All rights reserved.
//

import UIKit

class EmotionPakeage: NSObject {
    
    //表情数组
    lazy var emotionList = [Emotion]()
    
    //表情分组的报名
    var id : String?
    //表情分组的中文名称
    var group_name_cn : String?
    
    //定义的toolbar 导航栏中得数据
    init(id : String, name : String, emotions : [[String: String]]) {
        //利用自定义的id 来设置文件名 和表情中文的中文名称 这样的话对当前的字符串是没有影响的 
        self.id = id
        self.group_name_cn = name
        super.init()
        //将表情字典数组 转换为模型数组
        
        var index = 0
        for item in emotions {
           //拿到每一个表情字段
           //字典转模型
            //将表情数组中得元素全部遍历起来
         let e = Emotion(id: id, dict: item)
           emotionList.append(e)
            
            index++
            if index == 20 {
              //添加删除模型
              let deleteEmotion = Emotion(isRemove: true)
              //给模型添加数据 添加一个空的数据 给数据添加一个新的数据 
              emotionList.append(deleteEmotion)
               //恢复标记
               index = 0
            }
           // print(emotionList)
        }
       //不足20 个不足空表情
       insertEmptyEmotuion()
    }
    
    
    private func insertEmptyEmotuion() {
      //判断当前模型中的数据是否是21 个有21 就直接返回
      let count = emotionList.count % 21
        if count == 0 {
        //刚好有21 个表情
          return
        }
        
        //遍历有多少个空表情 如果表情数组为空的话 就添加一个空表情 看空数组有多少个 空的 在后面一次添加数据进去就可以了
        for _ in count ..< 20 {
            //添加空表情模型
          let empty = Emotion(isEmpty: true)
          emotionList.append(empty)
        }
        
        //最后一个 添加删除按钮
        let deleteEmotion = Emotion(isRemove: true)
        emotionList.append(deleteEmotion)
    }
    
    //冲写description方法
   override var description: String {
    
      return "id = \(id), name = \(group_name_cn)"
    }
    
    
    
}
